#include <iostream>
#include <memory>
#include <utility>
//#include <ostream>
using namespace std;

int main()
{
	/*
	unique_ptr<int> up(new int(2132));
	cout << *up << endl;

	unique_ptr<int> up2 = move(up);
	//unique_ptr<int> up2(up);	// build error!

	if (up)
	{
		cout << "uh oh" << endl;
	}
	else
	{
		cout << "yay" << endl;
	}
	*/


	/*
	shared_ptr<int> sp(new int(1233));
	shared_ptr<int> sp2(sp);

	cout << *sp << endl;
	cout << *sp2 << endl;
	*/

	/*
	shared_ptr<int> sp = make_shared<int>(1233);
	//auto sp = make_shared<int>(1234);

	cout << *sp << endl;
	*/

	cout << "done" << endl;
}